package com.gitee.feizns.webtemplate.entity.vo.commons.page;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.plugins.PaginationInterceptor;

import java.util.List;

/**
 * 为 mybatis plus 分页的代理
 * @author feizns
 * @since 2019/4/3
 * @param <T>
 */
public class FvPageImplForPlus<T> implements FvPage<T> {

    private Page<T> page;

    public FvPageImplForPlus(Page<T> page) {
        this.page = page;
    }

    /**
     * 使用mybatis plus 的分页插件时，获取offset应该是不准确的
     * 如果需要准确的，请使用 com.gitee.feizns.webtemplate.commons.data.page.OrderPagination
     * @see PaginationInterceptor
     * @return
     */
    @Override
    public Integer getBeginPos() {
        return page.getOffset();
    }

    @Override
    public Integer getCurtPage() {
        return page.getCurrent();
    }

    @Override
    public Integer getPageSize() {
        return page.getSize();
    }

    @Override
    public Long getPageCount() {
        return page.getPages();
    }

    @Override
    public long getTotal() {
        return page.getTotal();
    }

    @Override
    public List<T> getRows() {
        return page.getRecords();
    }

}
